package 剑指Offer.easy;

public class 调整数组顺序使奇数位于偶数前面 {
    class Solution1 {
        public int[] exchange(int[] nums) {
            int i = 0, j = nums.length - 1;
            //找到左边第一个偶数
            while (i < nums.length && nums[i] % 2 != 0) i++;
            //找到右边第一个奇数
            while (j >= 0 && nums[j] % 2 == 0) j--;

            while (i < j) {
                if (nums[i] % 2 == 0 && nums[j] % 2 != 0) {
                    int swap = nums[i];
                    nums[i] = nums[j];
                    nums[j] = swap;
                    i++;
                    j--;
                } else if (nums[i] % 2 != 0){
                    i++;
                } else if (nums[j] % 2 == 0){
                    j--;
                }
            }
            return nums;
        }
    }

    class Solution {
        public int[] exchange(int[] nums) {
            int i = 0, j = nums.length - 1;
            while (i < j) {
                //找到左边第一个偶数
                while (i < nums.length && nums[i] % 2 != 0) i++;
                //找到右边第一个奇数
                while (j >= 0 && nums[j] % 2 == 0) j--;
                if (i < j) {
                    int swap = nums[i];
                    nums[i] = nums[j];
                    nums[j] = swap;
                    i++;
                    j--;
                } else {
                    break;
                }
            }
            return nums;
        }
    }
}
